package day16.generic;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author success
 * @version 1.0
 * @description:本类用来演示:
 * @date 2019/8/5 0005
 */
public class GenericDemoExtends {
    public static void main(String[] args) {
        List<Integer> intList = new ArrayList<>();
        intList.add(10);
        intList.add(20);
        intList.add(30);

        printList(intList);

        List<Long> longList = new ArrayList<>();
        longList.add(100L);
        longList.add(200L);
        longList.add(300L);

        printList(longList);

        //需求是定义一个方法,能够输出上面俩个集合对象
    }

    /**
     * 指定上限 - ?代表的类型只能是Number类型或者是Number类型的子类
     * 指定下限 - ? super T - ?可以是T类型或者是T的父类类型
     * @param list
     */
    public static void printList(List<? extends Number> list){
        Iterator<? extends Number> iter = list.iterator();
        while(iter.hasNext()){
            Number n = iter.next();
            System.out.println(n);
        }
    }
}
